2.6.9 - Kontrola pohybu
Pro definování trajektorie pohybu neslouží pouze posloupnost bodů. Je možné definovat také trajektorii pro pohyb mezi jednotlivými body (po křivce nebo přímo), určení návaznosti jednotlivých trajektorií (zaoblení) a definování rychlosti pohybu. V této části si ukážeme různé způsoby pohybu (movej, movel a movec instrukce) a také na jejich parametr mDesc.
movej
Tato instrukce slouží pro pohyb z bodu do bodu, kde nezáleží na počátečním, ale na cílovém bodě. Střed nástroje následuje křivku definovanou systémem k optimalizaci rychlosti pohybu.
void movej(<point pPosition>, <tool tTool>, <mdesc mDesc>)
movel
Tato instrukce pohybuje nástrojem v přímé linii mezi počátečním a koncovým bodem.
movec
Tato instrukce slouží pro kruhový pohyb. Střed nástroje se pohybuje skrz 3 definované body a jeho orientace je přepočítána mezi počátečním, středním a konečným bodem.
Pokud střední bod svírá s bodem předchozím nebo následujícím úhel 180° nebo větší je generována chyba. V tomto případě je třeba upravit tento bod tak aby úhel byl menší než 180°.
Pro pohyb po celé kružnici je potřeba dvou instrukcí movec:
movec(D, A, Tool, mDesc)
Příklad
Typickým využitím může být zvednutí a přesunutí předmětu. Předmět je chycen na pozici pPick, poté je přemístěn (většinou po ose z) do bodu pDepart. Následně je přemístěn nad místo položení a poté je předmět položen.
Tento pohyb vykonají následující 3 řádky. Příkaz příkazy movel pohybují nástrojem v přímé rovině a příkaz movej (v tomto případě provede pohyb mezi body pDepart a pAppro) vykoná pohyb po křivce, ale vyšší rychlostí.
movej(pAppro, tTool, mDesc)
movel(pPlace, tTool, mDesc)
Zaoblení
V některých případech není nutné aby nástroj dosáhl všech bodů mezi počátečním
a cílovým bodem. To lze řešit zaoblením, které zvíší rychlost pohybu, protože
se nemusí zastavovat na každém bodě zvlášť.
Pomocí typu mDesc lze nastavit, zda je zaoblení aktivované a jak velké bude
zaoblení.
Příklad
Předchozí příklad si pomocí zaoblení upravíme tak, aby rameno nemuselo zastavovat v bodech pDepart a pAppro.
mDesc.leave = 50
mDesc.reach = 200
movel(pDepart, tTool, mDesc)
mDesc.leave = 200
mDesc.reach = 50
movej(pAppro, tTool, mDesc)
mDesc.blend = OFF//ruší zaoblování
movel(pPlace, tTool, mDesc)
Zaoblení jsme dosáhly změnou parametrů typu mDesc. Parametr blend, určuje zda bude zaoblení aktivní, parametry leave a reach určují velikost zaoblení.
Zrušení zaoblení
Instrukce waitEndMove() zajistí zrušení zaoblení právě prováděného pohybu bez ohledu na nastavení mDesc. Tedy čeká až na dokončení prováděného pohybu.
mDesc.leave = 10
mDesc.reach = 10
movej(pA, tTool, mDesc)
movej(pB, tTool, mDesc)
waitEndMove()//dojede až do bodu pB
movej(pC, tTool, mDesc)
movej(pD, tTool, mDesc)
Typ mDesc
Typ mDesc slouží, jak jsme si ukázaly již dříve, k nastavování parametrů pro rychlost, zrychlení a zaoblení. Jedná se o strukturované pole, které má následující parametry. Ke každému parametru lze přistoupit pomocí tečky.
| Parametr | Význam |
|---|---|
| num accel | Maximální přípustné zrychlení v procentech. |
| num vel | Maximální přípustná rychlost kloubu v procentech. |
| num decel | Maximální přípustné zpomalené v procentech. |
| num tvel | Maximální přípustná rychlost středu nástroje v mm/s nebo v inchech/s. |
| num rvel | Maximální přípustná rychlost rotace středu nástroje ve stupních za sekundu. |
| blend blend | Volba zaoblení. off - žádné zaoblení, joint - zaoblování |
| num leave | Vzdálenost mezi cílovým bodem, ve kterém začíná zaoblování a dalším bodem, v milimetrech nebo palcích. |
| num reach | Vzdálenost mezi cílovým bodem, ve kterém končí zaoblování a dalším bodem, v milimetrech nebo palcích. |
Defaultně je mDesc nastaven na { 100, 100, 100, 9999, 9999, off, 50, 50}
Pohybové instrukce
Pohyb po křivce
Syntaxevoid movej(<point pPosition>, <tool tTool>, <mdesc mDesc>)
Pohyb nástroje tTool po křivce do bodu jPosition nebo pPosition s parametry mDesc.
Pohyb po přímce
SyntaxePohyb nástroje tTool přímou linií do bodu pPosition s parametry mDesc.
Pohyb po kružnici
SyntaxePohyb nástroje tTool po kružnici. Pohyb začíná v místě předchozího pohybu, končí v bodě pTarget a prochází bodem pIntermediate.
Zastavení pohybu
SyntaxeZastaví pohyb ramene na jeho trajektorii. Pohyb může být znovu obnoven instrukcí restartMove().
Zastavení všech pohybů
Syntaxevoid resetMotion(<joint jStartingPoint>)
Zastaví pohyb ramene na jeho trajektorii a zruší všechny naplánované pohyby. Naprogramovaný pohyb bude obnoven, pokud bude rameno pozastaveno instrukcí stopMove(). Pokud je definován bod jStartingPoint, další pohyb může být započat z této pozice.
Obnovení pohybu
SyntaxeObnoví naprogramovaný pohyb, který byl pozastaven instrukcí stopMove(). Pokud nebyl předchozí pohyb pozastaven instrukcí stopMove(), nemá tato instrukce žádnou funkci.
Zrušení zaoblení
SyntaxeZruší zaoblení pohybu a čeká dokud není dokončen právě prováděný pohyb. Tato instrukce nestabilizuje rameno v jeho cílové pozici, to lze provést instrukcí isSettled().
Kontrola pohybu
SyntaxeVrací true pokud byly vykonány všechny pohybové instrukce, jinak vrací false.
Kontrola stabilizace
SyntaxeVrací true pokud je robot zastaven nebo false pokud není pozice stabilní.
Pozice se považována za stabilní, pokud odchylka každého kloubu je menší než
1%.
Propojení pohybu
Syntaxebool autoConnectMove()
Ve vzdáleném módu je propojení pohybu automatické pokud je rameno velmi
blízko k jeho trajektorii (vzdálenost je menší než je maximální povolená
chyba). Pokud je paže příliš daleko od své dráhy, propojení pohybu je
automatické nebo manuální v závislosti na režimu definovaném instrukcí autoConnectMove
: automaticky, pokud bActive je true, v režimu manuálního ovládání, pokud
bActive je false. Pokud je instrukce volána bez parametru, autoConnectMove vrátí
aktuální propojení pohybu.
Výchozí nastavení je manuální ovládání.
Rychlost aktuálního pohybu
SyntaxeInstrukce vrací rychlost právě prováděného pohybu v kartézských souřadnicích.
Síla kloubu
SyntaxeTato instrukce vrátí aktuální moment síly, kterým kloub působí (v N.m pro otočnou osu) nebo sílu (N pro lineární osu), vypočtené z výkonu motorů.
RS40B - uživatelský manuál